Locales


\begin{inset}{{\bf T3}:}
We are working on a module system which will eventually
subsume the functionality of {\mbox {\tt locale}}.
\end{inset}

Locales serve two purposes. First, they provide an incremental or declarative syntax for creating variable bindings in a contour. Second, they provide access to environments as objects which can be dynamically manipulated. The term locale is used to mean both the kind of contour introduced by a LOCALE-expression, and the object which represents the environment.

There are no global variables in T; all variables are lexically bound in some contour. Locales play the role of what is known in other Lisp and Scheme dialects as the global environment.

Special form


\begin{inset}{}
{\tt DEFINE} creates a binding for {\it variable\/}
in the lexic...
...uiv$\ & (DEFINE F (LAMBDA X (LIST X 2)))
\end{tabular} \end{codexenv}\end{inset}

Special form


\begin{inset}{}
\par
The value of the {\mbox {\tt LSET}} special form is undefin...
...ables bound by {\tt LSET} may be.
See {\tt SET}, page \pageref{SET}.
\end{inset}


\begin{inset}{}
\par
Creates a locale inferior to {\it superior-locale\/}. {\it ...
...EFINE *FOO-ENV* (MAKE-LOCALE STANDARD-ENV '*FOO-ENV*))
\end{codexenv}\end{inset}


\begin{inset}{}
Creates a locale containing no bindings whatsoever.
\end{inset}

Type predicate


\begin{inset}{}
Returns true if {\it object\/} is a locale.
\end{inset}